<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" href="../css/importArquivos.css" type="text/css"/>
</head>
<?php
if(isset($_GET['cod'])){
    $nomeArquivo = $_GET['cod'];
    include("../funcoes/funcoes.php");
    include_once("../mysql_connect/conexao.php");
    $arquivo = fopen('uploads_enviados/'.$nomeArquivo, 'r');
    $verificaArquivo = fopen('uploads_enviados/'.$nomeArquivo, 'r');

    // LAÇO DE REPETIÇÃO PARA VERIFICAR OS DADOS.
    $registroDuplicado = false;
    $erroDuplicado = "<h2>Os seguintes registros estão duplicados:</h2><br/>
                           <div class='nav'><table style='Width:100%' border='1' align>
                            <tr>
                               <th>Funcionario</th><th>Matricula</th><th>Data Lançamento</th>
                            </tr>";
    $erro = false;

    // Variaveis utilizadas no código para verificar e informar uma inexistencia de uma ou mais matriculas no banco de dados.
    $erroMatricula = "<h2>As seguintes matriculas da planilha não estão cadastradas no sistema:</h2><br/><br/>";
    $guardaMatricula = "";
    $verificaMatricula = "";

    while(!feof($verificaArquivo)){
        $verificaLinha = fgets($verificaArquivo, 2048);
        $verificaDados = explode(';', $verificaLinha);

        //if criado para verificar se a coluna da matricula é númerica e diferente de 'Matricula'
        if ($verificaDados[0]!= strtolower("Matricula") && (is_numeric($verificaDados[0]))){
            /**
             * COMO HÁ DOIS TIPOS DE MATRICULA (MATRICULA E MATRICULACLIENTE) E SÓ POSSUÍMOS
             * A MATRICULA DO CLIENTE, ENTÃO FOI CRIADO UMA BUSCA NA TABELA FUNCIONARIO PARA
             * ENCONTRAR A MATRICULA DA EMPRESA E PREENCHER NA FOREIGN KEY DA TABELA ponto
             */
            $buscaMatricula = "SELECT matricula, matriculaCliente, nome FROM funcionario WHERE matriculaCliente = '".utf8_encode($verificaDados[0])."'";
            $query = mysqli_query($conexao, $buscaMatricula);
            $resultado =  mysqli_fetch_assoc($query);
            //-----------------------------------------------------------------------------//

            //RECEBENDO VALORES DO BANCO E DA PLANILHA
            $nome = $resultado['nome'];
            $matriculaCliente = $resultado['matriculaCliente'];
            $data = datatoEN(utf8_encode(@$verificaDados[2]));
            //-----------------------------------------------/


            //VERIFICANDO SE AS MATRICULAS DA PLANILHA SE ENCONTRAM NA TABELA DE FUNCIONÁRIO
            if(is_numeric($verificaDados[0])){
                $buscaMatricula = "SELECT matriculaCliente FROM funcionario where matriculaCliente = '".utf8_encode($verificaDados[0])."'";
                $query = mysqli_query($conexao, $buscaMatricula);
                if (mysqli_num_rows($query) <=0){
                    $guardaMatricula = $verificaDados[0];
                    if ( $verificaMatricula != $guardaMatricula){
                        $verificaMatricula = $guardaMatricula;
                        $erroMatricula .= "<h3>".utf8_encode(@$verificaDados[0])." - ".utf8_encode(@$verificaDados[1])."</h3><br/>";
                        $erro = true;
                    }

                }
            }


            // VERIFICANDO SE O USUÁRIO ESTÁ DUPLICADO.
            $sql = sprintf("SELECT * FROM ponto WHERE FKfuncionario = '%s' and dataPonto = '%s'",utf8_encode(@$resultado['matricula']),$data);
            $verificaDuplicidade=mysqli_query( $conexao ,$sql);

            // SE O RESULTADO DO IF FOR MAIOR DO QUE ZERO QUE DIZER QUE HÁ REGISTRO DUPLICADO.
            if (mysqli_num_rows($verificaDuplicidade) > 0) {
                $erroDuplicado .=  "<tr><td> ".$nome."</td> <td>".$matriculaCliente."</td><td>".$data."</td></tr>";
                $registroDuplicado = true;
                $erro = true;
            }




            //IF PARA VERIFICAR SE AS COLUNAS DA PLANILHA ESTÃO POSICIONADAS CORRETAMENTE.
            if( (@$verificaDados[4] != "") && (@$verificaDados[5] == "")){
                echo "<script>alert('(1)Há alguma coluna vazia entre o conteúdo da planilha,favor editar o arquivo de forma que não contenha colunas vazias. VERIFIQUE SE HÁ ALGUMA COLUNA MESCLADA ')</script>";
                echo "<SCRIPT>document.location ='tmpl_up.php';</SCRIPT>";
                exit();
            }

            if( (@$verificaDados[6] != "") && (@$verificaDados[7] == "")){
                echo "<script>alert('(2)Há alguma coluna vazia entre o conteúdo da planilha,favor editar o arquivo de forma que não contenha colunas vazias. VERIFIQUE SE HÁ ALGUMA COLUNA MESCLADA ')</script>";
                echo "<SCRIPT>document.location ='tmpl_up.php';</SCRIPT>";
                exit();
            }

            if( (@$verificaDados[8] != "") && (@$verificaDados[9] == "")){
                echo "<script>alert('(3)Há alguma coluna vazia entre o conteúdo da planilha,favor editar o arquivo de forma que não contenha colunas vazias. VERIFIQUE SE HÁ ALGUMA COLUNA MESCLADA ')</script>";
                echo "<SCRIPT>document.location ='tmpl_up.php';</SCRIPT>";
                exit();
            }
            if( (@$verificaDados[10] != "") && (@$verificaDados[11] == "")){
                echo "<script>alert('(4)Há alguma coluna vazia entre o conteúdo da planilha,favor editar o arquivo de forma que não contenha colunas vazias. VERIFIQUE SE HÁ ALGUMA COLUNA MESCLADA ')</script>";
                echo "<SCRIPT>document.location ='tmpl_up.php';</SCRIPT>";
                exit();
            }
            if( (@$verificaDados[12] != "") && (@$verificaDados[13] == "")){
                echo "<script>alert('(5)Há alguma coluna vazia entre o conteúdo da planilha,favor editar o arquivo de forma que não contenha colunas vazias. VERIFIQUE SE HÁ ALGUMA COLUNA MESCLADA ')</script>";
                echo "<SCRIPT>document.location ='tmpl_up.php';</SCRIPT>";
                exit();
            }
            if( (@$verificaDados[14] != "") && (@$verificaDados[15] == "")){
                echo "<script>alert('(6)Há alguma coluna vazia entre o conteúdo da planilha,favor editar o arquivo de forma que não contenha colunas vazias. VERIFIQUE SE HÁ ALGUMA COLUNA MESCLADA ')</script>";
                echo "<SCRIPT>document.location ='tmpl_up.php';</SCRIPT>";
                exit();
            }

        }
    }
    ?>
    <body>
    <?php
    if(($verificaMatricula != "") ||($registroDuplicado == true) ){
        if ($verificaMatricula != ""){
            echo $erroMatricula;
        }
        if($registroDuplicado == true){
            echo $erroDuplicado."</table>";
        }
    }
    ?>

    <br/><br/><a href="../menu.php"> <input class="button" type="button" name="prosseguir" value="OK"></a>
    </body>
    <?php

    $contRegistro = 0;
    // laço de repetição para inserir na tabela os dados que foram aceitos na verificação do primeiro laço.
    if ($erro != true){
        while(!feof($arquivo)){
            $linha = fgets($arquivo, 1024);
            $dados = explode(';', $linha);


            /**
             * if criado para verificar se o campo da matricula e da data de lançamento estão corretos,
             * caso não, não será executada a query evitando que insira dados incorretos no banco de dados.
             */
            if((is_numeric(@$dados[0]))&& (@$dados[1] != "") &&(@$dados[2] != "") && (@$dados[3] != "")){


                /**
                 * Como há dois tipos de matricula (matricula e matriculaCliente) e só possuímos
                 * a matricula do cliente, então foi criado uma busca na tabela funcionario para
                 * encontrar a matricula da empresa e preencher na foreign key da tabela ponto
                 */
               $buscaMatricula = "SELECT matricula FROM funcionario WHERE matriculaCliente = '".$dados[0]."'";
               $query = mysqli_query($conexao, $buscaMatricula);
               $resultado =  mysqli_fetch_assoc($query);

              // $sqlponto = sprintf("insert into ponto(FKfuncionario,
              //                         dataPonto)
              //                         values('%s',
               //                               '%s')",$resultado['matricula'],datatoEN(@$dados[2]) );
               if($dados[0] != 'Nome' && !empty($linha)){
                    // INSERE NA TABELA A DATA E O RELACIONAMENTO DA MATRICULA COM A TABELA FUNCIONARIO
                  //  mysqli_query($conexao, $sqlponto) or die ("não deu");
                    $contRegistro++;



                    //$sqlponto = sprintf("SELECT idPonto from ponto where dataPonto = '%s' and FKfuncionario = '%s'",
                    //    datatoEN(@$dados[2]), $resultado['matricula'] );
                   // $queryPonto = mysqli_query($conexao, $sqlponto);
                   // $resultadoQueryPonto = mysqli_fetch_assoc($queryPonto);

                   // for ($i = 4; $i < 15; $i = $i + 2){
                    //    if(!empty($dados[$i])){
                    //        $sqlRegistro = sprintf("insert into registro (entrada,saida, FKponto) values
                    //      ('%s', '%s', (select max(idponto) from ponto))", $dados[$i], $dados[$i+1]);
                    //        mysqli_query($conexao, $sqlRegistro);
                    //    }

                    //}

                   /**
                    * $i ESTÁ SENDO INICIADO COM 4 PORQUE É A POSIÇÃO DA COLUNA NA PLANILHA EM QUE
                    * SE INICIA AS INFORMAÇÕES DE ENTRADA E SAÍDA.
                    */
                   $registro = array();
                   for ($i = 4; $i < 15; $i = $i + 2){
                        if(!empty($dados[$i])){
                        $registro[] = array($dados[$i], $dados[$i+1]);
                        } else {
                            $registro[] = array("", "");
                        }

                    }
                   print_r($registro);
                    $sqlRegistro = sprintf("call cadastrar_ponto('%s', '%s','%s', '%s','%s','%s','%s', '%s','%s', '%s','%s', '%s','%s', '%s')",
                                                                        $resultado['matricula'],datatoEN(@$dados[2]),
                                                                        $registro[0][0], $registro[0][1],
                                                                        $registro[1][0], $registro[1][1],
                                                                        $registro[2][0], $registro[2][1],
                                                                        $registro[3][0], $registro[3][1],
                                                                        $registro[4][0], $registro[4][1],
                                                                        $registro[5][0], $registro[5][1]);
                   mysqli_query($conexao, $sqlRegistro);

                }

            }
        }

        if ($contRegistro != 0){
            echo "<script>alert('Arquivo importado com sucesso! Total de registros:  $contRegistro. ')</script>";
            fclose($arquivo);
        } else {
            echo "<p><h2>Nenhum registro importado!<br/>Verifique a planilha!</h2></p>";
            fclose($arquivo);
        }
    }
}else{
    echo "<script>alert('Não foi recebido o nome do arquivo que deseja importar. Verificar com o Suporte')</script>";
    exit;
}
?>
</html>
<script language='JavaScript'>
    //    document.location = '../horas/views_horas/admHoras.php';
</script>